Hello大家,
今天沒下雨了~
覺得棒!!
昨天大致介紹了Match query
的用法,
今天來說一下他有那些可以使用的參數吧~
auto_generate_synonyms_phrase_query
這個是用來創建同義字以增加詞組的查詢結果,
如果沒有特別設定的話默認值是true,
這功能沒有特別需求的話,
預設都開著了可以不用特別設定。
就如昨天說到的,
Match query會去拆解字詞進行分析,
所以很離所當然地就會有點接近模糊查詢的概念!
因此他也有fuzziness
的參數可以設定,
他就是設定我們允許他找到的最大編輯距離,
詳細的介紹可以看這邊~
max_expansions
這是要設定他最大可以擴展的數量,
比如輸入ap
他可能找到相關的有application
、apple
,
這邊要設定的就是可以查詢到最長的字,
假如我們設定5
就可以找到apple但找不到application,
預設值是50。
prefix_length
這就是在進行查詢之前,
保留一個詞前面幾個字,
相關的內容前面也有提到,
假如我今天設定3,
value設定為apple
那系統就會保留app然後進行模糊查詢,
這個預設是0。
fuzzy_transpositions
這就可以設定要不要讓相鄰的字進行調換後查詢,
比如輸入ap
可不可以變成使用pa
進行查詢,
預設是true。
lenient
這個參數如果開啟了呢,
就是忽略field的屬性進行查詢,
比如原本內容為數值,
但當作字串進行搜尋,
預設值為false。
minimum_should_match
用於設定查詢的比對最小要符合的子句數量,
他可以設定數字比如2
或5
之類的,
也可以設負數-2
意思就是符合的兩個不要,
也可以利用百分比表示60%
、-60%
根據查詢的結果進行四捨五入,
詳細的方法可以參考這邊https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html